#ifndef _CORE_H
#define _CORE_H

#include "Utils\Defines.h"
#include "Utils\SingletonPattern.h"
#include <Windows.h>

class CGraphicsManager;
class CSoundManager;
class CInputManager;

class CCore: public CSingleton<CCore>
{
public:
	CCore(void);
	~CCore(void);

	void Init(HWND hWnd, bool fullscreen, uint32 width, uint32 height);
	void DeInit();
	void Update();
	void Render();

	GETSET(CGraphicsManager*, graphicsManager);
	GETSET(CSoundManager*, soundManager);
	GETSET(CInputManager*, inputManager);

private:
	CGraphicsManager* m_graphicsManager;
	CSoundManager* m_soundManager;
	CInputManager* m_inputManager;
};

#endif